package thread;

/**
 * @User: vitobo
 * @Date: 2024-07-23
 * @Description: 多线程学习: 创建线程
 *
 * 使用thread类, 不需要import包, 因为是在java.lang下面的
 *
 * 如果一个进程只有一个线程, 就是一个进程对应一个PCB了
 * 一个进程中有多个线程, 则 一个线程对应一个PCB, 一个进程对应多个PCB;
 *
 *
 *
 */

// 方法1: 继承Thread类
class MyThread extends Thread{
    @Override
    public void run(){
        while (true){
            System.out.println("hello thread");
            // 休眠一秒
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

public class ThreadDemo1 {
    public static void main(String[] args) {
        // 创建线程, 是希望线程成为一个独立的执行流(执行一段代码)
        Thread t = new MyThread();

        // 主线程调用t.start, 启动一个新线程,由新的线程来执行run()方法,
        t.start();


        // 操作系统调度线程的时候, 是 "抢占式执行"的
        while (true){
            System.out.println("hello main");
            // 休眠一秒
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }

    }
}

























